package vip.xiaonuo.megvii.captures.handle;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import vip.xiaonuo.core.timer.TimerTaskRunner;
import vip.xiaonuo.megvii.captures.listener.AiBoxActivePushDataPublisher;
import vip.xiaonuo.modular.megviipushdata.entity.MegviiPushData;
import vip.xiaonuo.modular.megviipushdata.param.MegviiPushDataParam;
import vip.xiaonuo.modular.megviipushdata.service.MegviiPushDataService;

import javax.annotation.Resource;
import java.util.List;

@Component
@Slf4j
public class MegviiHandleDataTimer implements TimerTaskRunner {

    @Resource
    private MegviiPushDataService service;

    @Resource
    private AiBoxActivePushDataPublisher publisher;

    /**
     * 旷视数据的兜底程序
     * 1分钟执行一次
     */
    private void megviiPushDataHandleTask() {
        log.info("处理旷视主动推送未处理的数据");
        MegviiPushDataParam param = new MegviiPushDataParam();
        param.setStatus(0);
        List<MegviiPushData> list = service.list(param);

        if(list!=null && list.size()>=100){
            list = list.subList(0,99);
        }

        for (MegviiPushData data : list){
            data.setStatus(3);
            service.saveOrUpdate(data);
            publisher.pushEvent(data);
        }

    }


    @Override
    public void action(String jobParams,String taskId) {
        megviiPushDataHandleTask();
    }

    @Override
    public void executeXxlJob() throws InterruptedException {
        megviiPushDataHandleTask();
    }
}
